package com.xlf.service.blog.service;

import com.xlf.service.blog.domain.Article;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xlf.service.blog.domain.dto.AddArticleDTO;
import com.xlf.service.blog.domain.dto.ArticleQueryDTO;
import com.xlf.service.blog.domain.dto.EditArticleDTO;
import com.xlf.service.blog.domain.vo.ArticleInfoVO;

import java.util.List;

/**
 * @author 小新
 * @description 针对表【t_article】的数据库操作Service
 * @createDate 2023-07-08 15:48:07
 */
public interface ArticleService extends IService<Article> {


    /**
     * 后台获取文章
     * @param article
     * @return
     */
    List<Article> getPage(Article article);

    /**
     * 分页
     * @param articleQueryDto
     * @return
     */
    List<Article> getPage(ArticleQueryDTO articleQueryDto);

    /**
     *
     * @param articleId
     * @return
     */
    Article getArticleById(Long articleId);

    /**
     *新增文章
     * @param article
     */
    void saveArticle(AddArticleDTO article);

    /**
     * 修改文章
     * @param article
     */
    void updateArticle(EditArticleDTO article);

    /***
     * 删除文章
     * @param id
     * @return
     */
    boolean deleteArticle(Long id);


    /***
     * 收藏文章
     * @param articleId
     */
    void collection(Long articleId);

    /**
     * 点赞文章
     * @param articleId
     */
    void thumbs(Long articleId);

    /**
     * 关注用户
     * @param userId
     */
    void follow(Long userId);

    List<Article> getRecentlyArticle();

    ArticleInfoVO getArticleInfo();

    /**
     * 后台获取文章
     * @param articleId
     * @return
     */
    Article getArticle(Long articleId);
}
